home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 October / CHIP Turkiye Ekim 2000.iso / prog / naps / 04 / setup.exe / Gnucleus / AnimEffect.h < prev    next >
C/C++ Source or Header  |  2000-06-17  |  2KB  |  83 lines

  1. // Written by SiGMan / iO UpG  13-04-2000
  2. // 
  3. //
  4. // AnimEffect.h: interface for the AnimEffect class.
  5. //
  6. //////////////////////////////////////////////////////////////////////
  7.  
  8. #if !defined(AFX_ANIMEFFECT_H__9AED4B93_0A83_4B4E_B6ED_1B3A133E2600__INCLUDED_)
  9. #define AFX_ANIMEFFECT_H__9AED4B93_0A83_4B4E_B6ED_1B3A133E2600__INCLUDED_
  10.  
  11. #if _MSC_VER > 1000
  12. #pragma once
  13. #endif // _MSC_VER > 1000
  14.  
  15. enum AnimType {
  16.     AnimInit, AnimDraw, AnimErase, AnimTerm
  17. };
  18.  
  19. struct AnimData
  20. {
  21.     BOOL    bOpen;
  22.     RECT    rcScreen;
  23.     RECT    rcWnd;
  24.     int        iParameter;
  25.     int        iAfterimages;
  26.     int        iTotalSteps;
  27.     int        iStep;
  28.     POINT    ptRelRightTop;
  29.     POINT    ptCenter;
  30.     HWND    hWnd;
  31.     HDC        hDC;
  32.     enum    AnimType animType;
  33.     BYTE    bBuffer[4000];
  34. };
  35.  
  36.  
  37. class AnimEffect  
  38. {
  39. public:
  40.     enum EffectType {
  41.         Random=-1,
  42.         Spin=0,
  43.         Vortex,
  44.         ScatterGather,
  45.         Spike,
  46.         Fireworks
  47.     };
  48.  
  49.     typedef BOOL (*EFFUNC)( AnimData * );
  50.  
  51.     AnimEffect();
  52.     virtual ~AnimEffect();
  53.  
  54.     void Setup( int iSteps, int iAfterimages, int iDelay = 10);
  55.     void Effect( EffectType effect );
  56.     void Open( const CRect &rcWnd );
  57.     void Close( const CRect &rcWnd );
  58.  
  59. private:
  60.     void Defaults();
  61.     void ChooseFunc();
  62.     void Animate( AnimData &animData );
  63.  
  64. private:
  65.     RECT    m_rcScreen;
  66.     int        m_iParameter;
  67.     int        m_iAfterimages;
  68.     int        m_iTotalSteps;
  69.     int        m_iDelay;
  70.     EffectType    m_Effect;
  71.     EFFUNC    m_Func;
  72.  
  73.     RECT    m_rcWnd;
  74.     POINT    m_ptRelRightTop;
  75.     POINT    m_ptCenter;
  76.  
  77.     HWND    m_hWnd;
  78.     HDC        m_hDC;
  79.     HPEN    m_hPen;
  80. };
  81.  
  82. #endif // !defined(AFX_ANIMEFFECT_H__9AED4B93_0A83_4B4E_B6ED_1B3A133E2600__INCLUDED_)
  83.